﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DGZImp.MdsProject.Devices.Models
{
    public enum DataTypeEnum
    {
        None,
        Bool,
        Byte,
        Int16,
        UInt16,
        Int32,
        UInt32,
        Int64,
        UInt64,
        Float,
        Double,
        String
    }

    public enum ServeTypeEmun
    {
        [Description("无")]
        None = 0,
        [Description("西门子PLC")]
        SiemensPlc = 11,
        [Description("欧姆龙PLC")]
        OmronPlc = 12,
        [Description("三菱PLC")]
        MelsecPlc = 13,
        [Description("HTTP")]
        Http = 21,
        [Description("TCP")]
        Tcp = 22,
        [Description("WebSocket")]
        WebSocket = 23,
    }

    public enum RealDeviceTypeEmun
    {
        [Description("无")]
        None = 0,
        [Description("缓存线")]
        Conveyor = 11,

        [Description("固定扫码器")]
        Scanner = 13,
        [Description("RGV")]
        RGV = 14,
        [Description("提升机")]
        Hoister = 15,
        [Description("上对接机构")]
        Connector_TOP = 16,
        [Description("下对接机构")]
        Connector_BOT = 17,

        [Description("转运AGV")]
        AGV_ZY = 21,
        [Description("堆高AGV")]
        AGV_DG = 22,
        [Description("长臂AGV")]
        AGV_CB = 23,
        [Description("密封AGV")]
        AGV_MF = 24,

        [Description("配粉设备")]
        PRD_PF = 31,
        [Description("气流磨设备")]
        PRD_ZF = 32,
        [Description("混粉机")]
        PRD_HF = 33,
        [Description("压机")]
        PRD_YX = 34,
        [Description("烧结炉")]
        PRD_SJ = 35,
    }

    public enum GoodsStatusEnum
    {
        无货 = 0,
        有货 = 1,
    }

    public enum ConveyorCommandEnum
    {
        无指令 = 0,
        空闲 = 1,
        取放罐进行中 = 2,
        取放罐完成 = 3,
    }

    public enum ConveyorStatusEnum
    {
        未知 = 0,
        空闲 = 1,
        运行中 = 2,
        手动 = 3,
        急停或故障 = 4
    }

    public enum ConnectorCommandEnum
    {
        无指令 = 0,
        开阀 = 1,
        关阀 = 2,
        放货完成 = 3,
        取货完成 = 4
    }
    /// <summary>
    /// 1-空闲 2-任务运行中  3-手动 4-急停/故障
    /// </summary>
    public enum ConnectorStatus
    {
        无状态 = 0,
        空闲 = 1,
        任务运行中 = 2,
        手动 = 3,
        急停或故障 = 4
    }

    //0:空闲 1-进行中  2-已完成
    public enum ConnetorEventCode
    {
        空闲 = 0,
        进行中 = 1,
        已完成 = 2
    }
    /// <summary>
    ///  1-变频器故障 2-编码器故障 3-急停被拍下 4-取货超时 5-放货超时 6-取货前提升机有货 
    ///  7-放货前货物不在中心或无货物 8-RGV应答放货完成时提升机检测仍有货
    /// </summary>
    public enum ConnectorErrorEnum
    {
        正常 = 0,
        变频器故障 = 1,
        编码器故障 = 2,
        急停被拍下 = 3,
        取货超时 = 4,
        放货超时 = 5,
        取货前提升机有货 = 6,
        放货前货物不在中心或无货物 = 7,
        RGV应答放货完成时提升机检测仍有货 = 8
    }
    /// <summary>
    /// 0-无 1-出罐完成  (RGV取完料后置0)
    /// </summary>
    public enum ConnectorShipOutEnum
    {
        无 = 0,
        出罐 = 1,
    }

    public enum HoistCommandEmun
    {
        无指令 = 0,
        新任务 = 1,
        清除任务 = 2,
    }

    public enum HoistStatusEmun
    {
        未知 = 0,
        空闲 = 1,
        运行中 = 2,
        手动 = 3,
        急停或故障 = 4
    }

    public enum HoistEventEnum
    {
        无 = 0,
        进行中 = 1,
        已完成 = 2
    }

    public enum RgvCommandEmun
    {
        无指令 = 0,
        取放货任务 = 1,
        清除任务 = 2,
        取货任务 = 3,
        放货任务 = 4,
        移动任务 = 5,
    }

    public enum RgvStatusEmun
    {
        未知 = 0,
        空闲 = 1,
        运行中 = 2,
        手动 = 3,
        急停或故障 = 4
    }

    public enum RgvEventEnum
    {
        无 = 0,
        进行中 = 1,
        已完成 = 2
    }
    /// <summary>
    ///  1-行走变频器故障 2-输送变频器故障 3-急停被拍下 4-激光前超限 5-激光后超限 
    ///  6-激光数据中断 7-取货超时 8-放货超时 9-取货前RGV有货 10-放货前货物不在中心或无货物
    ///  11-输送线应答放货完成时RGV检测仍有货
    /// </summary>
    public enum RgvErrorEnum
    {
        正常 = 0,
        行走变频器故障 = 1,
        输送变频器故障 = 2,
        急停被拍下 = 3,
        激光前超限 = 4,
        激光后超限 = 5,
        激光数据中断 = 6,
        取货超时 = 7,
        放货超时 = 8,
        取货前RGV有货 = 9,
        放货前货物不在中心或无货物 = 10,
        输送线应答放货完成时RGV检测仍有货 = 11
    }

    /// <summary>
    /// 0 无对接 1正在取放货 2对接完成
    /// </summary>
    public enum YXRgvConnectEnum
    {
        无对接 = 0,
        正在取放货 = 1,
        对接完成 = 2
    }
    public enum AgvCommandEmun
    {
        无指令 = 0,
        取放货任务 = 1,
        移动任务 = 2,
        取货任务 = 3,
        放货任务 = 4,
        取消任务 = 9,
    }

    public enum LsAgvControlTypeEnum
    {
        点控制响应 = 1,
        路径控制响应 = 2,
    }

    public enum LsAgvOperationEnum
    {
        取货前检查 = 0,
        取货后处置 = 1,
        放货前检查 = 2,
        放货后处置 = 3,
    }

    //0:任务生成 1:任务正在处理 2:取货完成 3:任务完成 4:任务异常
    public enum LsAgvReqTypeEnum
    {
        任务生成 = 0,
        任务正在处理 = 1,
        取货完成 = 2,
        任务完成 = 3,
        任务异常 = 4
    }

    public enum ProductorStatusEmun
    {
        未连接 = 0,
        设备待机 = 1,
        生产进行 = 2,
        生产结束 = 3,
        设备报警 = 4,
        设备保养 = 5,
        设备维修 = 6
    }

    public enum ProductorCommandEmun
    {
        无指令 = 0,
        取货到位 = 1,
        放货到位 = 2,
        取货完成 = 3,
        放货完成 = 4
    }

    public enum ProductorRemoteEnum
    {
        本地单机 = 0,
        远程联控 = 1
    }
}
